In a wireless mesh network, traffic may be routed by a number of different routes between a source node and a destination node. This means that if a particular link between two nodes in the network is congested or has low performance, the traffic can be routed via an alternative route. This results in a wireless mesh network being both flexible and resilient. It is, however, difficult to achieve high performance in a wireless mesh network because of the variability in performance of any particular link (e.g. due to interference or changes in environment) and the difficulties in scheduling and routing packets. The problems are increased where packets are routed via one or more intermediate nodes (multi-hop routing).
Many existing methods for multi-hop routing rely upon back-pressure in the network to enable routing decisions. For example, routing decisions may be made based on the relative sizes of queues at a node and at the node's neighbor nodes. Such a method, however, results in large numbers of data packets being stored in the network as queues build up ahead of any congested link. These large queues result in delays and packet loss. Additionally, if there are not enough packets available such methods can be highly inefficient.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known multi-hop transmission schemes.